home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 10 / FM Towns Free Software Collection 10.iso / fb386 / lib / blb / input.blb < prev    next >
Text File  |  1995-01-21  |  4KB  |  62 lines

  1. 61200 '----------------------  文字列入力ルーチン ver 1.2 --------------------------------------------
  2. 61201 '入力   length   ... 入力する文字列の最大の長さ(バイト)(max 59)
  3. 61202 '       MOJI$    ... 編集する文字列(ヌルでも良い)
  4. 61203 '       TITLE$   ... オープンするウインドウのタイトル
  5. 61204 '出力   moji$    ... 入力された文字列
  6. 61205 '注意   DIM BLB_MEM%(78000)を実行しておく
  7. 61206 '
  8. 61207 *BLB_INPUT
  9. 61208  CURSOR=LEN(MOJI$):MPOS=KLEN(MOJI$):XX=160:YY=180:IF LENGTH>59 THEN LENGTH=59
  10. 61209  GET@A(0,464)-(639,479),BLB_MEM%,40000:LINE(0,464)-(639,479),PSET,%8,BF:CONSOLE 0,24,2
  11. 61210  GET@A(XX,YY)-(XX+384,YY+72),BLB_MEM%,10000:COLOR,%8
  12. 61211  LINE(XX,YY)-STEP(384,72),PSET,%8,BF,7:LINE(XX,YY)-STEP(384,15),PSET,%8,BF,1
  13. 61212  LINE(XX,YY)-STEP(101,15),PSET,%8,BF:LINE(XX+2,YY+2)-STEP(11,11),PSET,7,BF,%6
  14. 61213  LINE(XX+2,YY+2)-STEP(11,11),PSET,7:LINE(XX+13,YY+2)-STEP(-11,11),PSET,7
  15. 61214  LINE(XX+382,YY)-STEP(1,72),PSET,%8,B:LINE(XX,YY+71)-STEP(384,0),PSET,%8
  16. 61215  SYMBOL(XX+16,YY+2),TITLE$,.75!,.75!,7
  17. 61216  LINE(XX+8,YY+24)-STEP(365,19),PSET,%8,BF
  18. 61217  SYMBOL(XX+10,YY+28),MOJI$,.75!,.75!,7:LINE(XX+10+CURSOR*6,YY+28)-STEP(5,11),XOR,%7,BF
  19. 61218  MOUSE 4,XX,YY,XX+383,YY+71:F=0
  20. 61219  IF MOUSE(2,0) THEN
  21. 61220   X=MOUSE(0)-XX:Y=MOUSE(1)-YY
  22. 61221   IF Y<16 THEN
  23. 61222    IF X>1 AND Y>1 AND X<14 AND Y<14 THEN
  24. 61223     A=0:WHILE MOUSE(2,0):X=MOUSE(0)-XX:Y=MOUSE(1)-YY:F=(X>1)*(Y>1)*(X<14)*(Y<14)
  25. 61224      IF A<>F THEN A=F:LINE(XX+2,YY+2)-STEP(11,11),XOR,%7,BF
  26. 61225     WEND
  27. 61226    ELSE
  28. 61227     MOUSEPAT=3:GOSUB *BLB_MOUSEPAT
  29. 61228     A=X:B=Y:C=XX:D=YY:MOUSE 4,X,Y+21,255+X,391+Y:LINE(XX,YY)-STEP(384,72),XOR,%7,B
  30. 61229     FOR I=0 TO 1:I=1+MOUSE(2,0):X=MOUSE(0)-A:Y=MOUSE(1)-B:IF XX<>X OR YY<>Y THEN LINE(XX,YY)-STEP(384,72),XOR,%7,B:LINE(X,Y)-STEP(384,72),XOR,%7,B:XX=X:YY=Y
  31. 61230     NEXT:LINE(X,Y)-STEP(384,72),XOR,%7,B:MOUSEPAT=0:GOSUB *BLB_MOUSEPAT:MOUSE 4,XX,YY,XX+383,YY+71
  32. 61231     IF XX<>C OR YY<>D THEN
  33. 61232     GET@A(C,D)-(C+384,D+72),BLB_MEM%:PUT@A(C,D)-(C+384,D+72),BLB_MEM%,,,,,10000
  34. 61233     GET@A(XX,YY)-(XX+384,YY+72),BLB_MEM%,10000:PUT@A(XX,YY)-(XX+384,YY+72),BLB_MEM%
  35. 61234     ENDIF
  36. 61235    ENDIF
  37. 61236   ELSE IF X>8 AND Y>26 AND X<373 AND Y<42 THEN
  38. 61237    A=(X-10)\6:A$="":FOR I=1 TO KLEN(MOJI$):IF KTYPE(MOJI$,I)=0 THEN A$=A$+CHR$(I) ELSE A$=A$+CHR$(I)+CHR$(0)
  39. 61238    NEXT:A=(X-10)\6+1:IF A>LEN(MOJI$) THEN A=LEN(MOJI$)+1
  40. 61239    IF MID$(A$,A,1)=CHR$(0) THEN A=A-1
  41. 61240    LINE(XX+10+CURSOR*6,YY+28)-STEP(5,11),XOR,%7,BF
  42. 61241    IF LEN(A$)>=A THEN MPOS=ASC(MID$(A$,A,1))-1:CURSOR=A-1 ELSE MPOS=KLEN(MOJI$):CURSOR=LEN(MOJI$)
  43. 61242    LINE(XX+10+CURSOR*6,YY+28)-STEP(5,11),XOR,%7,BF
  44. 61243   ENDIF
  45. 61244  ENDIF
  46. 61245  IF F=1 THEN MOJI$="":GOTO 61260 ELSE IF F=2 THEN 61218
  47. 61246  A$=INKEY$:IF A$="" THEN 61219
  48. 61247   IF A$=CHR$(13) THEN 61260
  49. 61248   IF A$=CHR$(24) THEN MOJI$="":GOTO 61260
  50. 61249   IF A$=CHR$(29) AND MPOS>0 THEN LINE(XX+10+CURSOR*6,YY+28)-STEP(5,11),XOR,%7,BF:CURSOR=CURSOR-1-KTYPE(MOJI$,MPOS):MPOS=MPOS-1:GOTO 61259
  51. 61250   IF A$=CHR$(28) AND MPOS<KLEN(MOJI$) THEN LINE(XX+10+CURSOR*6,YY+28)-STEP(5,11),XOR,%7,BF:MPOS=MPOS+1:CURSOR=CURSOR+1+KTYPE(MOJI$+" ",MPOS):GOTO 61259
  52. 61251   IF A$=CHR$(127) THEN IF KLEN(MOJI$)>MPOS THEN MOJI$=KLEFT$(MOJI$,MPOS)+KMID$(MOJI$,MPOS+2):GOTO 61258 ELSE A$=""
  53. 61252   IF A$=CHR$(8) AND MPOS=0 THEN A$=""
  54. 61253   IF A$=CHR$(8) ELSE 61255
  55. 61254   CURSOR=CURSOR-1-KTYPE(MOJI$,MPOS):MPOS=MPOS-1:MOJI$=KLEFT$(MOJI$,MPOS)+KMID$(MOJI$,MPOS+2):GOTO 61258
  56. 61255   IF (A$>CHR$(128) AND A$<CHR$(160))OR(A$>CHR$(223) AND A$<CHR$(236)) THEN A$=A$+INKEY$
  57. 61256   IF A$<" " OR LEN(MOJI$+A$)>LENGTH THEN 61219
  58. 61257   MOJI$=KLEFT$(MOJI$,MPOS)+A$+KMID$(MOJI$,MPOS+1):CURSOR=CURSOR+LEN(A$):MPOS=MPOS+1
  59. 61258   SYMBOL(XX+10,YY+28),LEFT$(MOJI$+"     ",LENGTH+1),.75!,.75!,7,,OPAQUE
  60. 61259   LINE(XX+10+CURSOR*6,YY+28)-STEP(5,11),XOR,%7,BF:GOTO 61219
  61. 61260   MOUSE 4,0,0,639,479:PUT@A(XX,YY)-(XX+384,YY+72),BLB_MEM%,,,,,10000:CONSOLE,,0:PUT@A(0,464)-(639,479),BLB_MEM%,,,,,40000:RETURN
  62.